home *** CD-ROM | disk | FTP | other *** search
- Short: Typed Modules (V40) for Amiga E
- Author: m88jrh@ecs.ox.ac.uk (Jason R. Hulance)
- Uploader: m88jrh@ecs.ox.ac.uk (Jason R. Hulance)
-
- This archive contains typed modules created from the V40 Amiga includes.
- They differ from the standard modules in that they enable multiple
- dereferencing of system objects without requiring repeated "::<type>".
- For instance, to access the signal bit of a window's message port you can
- now type:
-
- win.userport.sigbit and win.rport.layer.scroll_x
-
- instead of:
-
- win.userport::mp.sigbit and win.rport::rastport.layer::layer.scroll_x
-
- (Note: You are still required to include the module for any object
- referred to in this way.) A bonus is that the sources show the dependencies
- of the modules. For instance, 'graphics/layers' depends on 'exec/lists',
- 'exec/semaphores' and 'graphics/clip'. This is a short list to search for
- the definition of 'layer' (which is in 'graphics/clip', quite surprisingly).
-
- Again, the names used conform to the standard modules (where possible) and
- these are based on the Assembly includes. This means that you still need to
- be aware of the differences in names from the C includes.
-
- A number of useful (standard) macros have been added, e.g., ITEMNUM() from
- 'intuition/intuition'. To use these you must specify "OPT PREPROCESS" in
- your source file.
-
- The library modules for all of the V40 system libraries are included.
- Note that this *includes* those for the built-in libraries: 'dos', 'exec',
- 'graphics' and 'intuition'. This is a stop-gap feature since EC v3.1a does
- not contain any V40 function calls (but v3.2a probably will). Use these
- four modules at your own risk! (They seem to behave correctly...)
-
- Some of the problems highlighted in the previous (V39) release have been
- solved by manipulation of the module files. This means that, once again,
- you *CANNOT* recreate the modules from the sources. The sources are purely
- for reference. The problems solved are: unions and misaligned elements.
-
- There are three badly aligned elements in the standard includes, which are
- caused by odd sized CHAR arrays. Two are in the 'countryprefs' object in
- 'prefs/locale' (which cause a number of the following elements to be badly
- aligned, too), and one is in the 'conunit' object of 'devices/conunit'.
- The changes made to these modules are completely transparent.
-
- There are a number of unions in the includes. One example is the
- 'printerdata' object of 'devices/prtbase', in which "s0:ioextser" is
- unioned with "p0:ioextpar", presumably because your printer may be
- connected to your serial or parallel port. (In fact, this object has
- incorrect offsets in the standard modules.)
-
- Unions have been admitted by fiddling the module file (in a safe way).
- The one disadvantage is that creating an object-typed list for an object
- that contains a union is probably undefined now (at least, I can't
- guarantee what would happen). This may not be a great problem as a lot of
- these objects contain nested object instances (e.g., an element "x:obj")
- which means an object-typed list cannot be created anyway. The complete
- list of objects which have unions is:
-
- Module Object
- ------------------------------
- dos/dosextens dospacket
- dos/dosextens doslist
- dos/notify notifyrequest
- exec/memory me
- exec/tasks tc
- graphics/copper copins
-
- These E modules and sources are Copyright (C) 1994-1995, Jason R. Hulance.
- The original C and Assembly includes are Copyright (C) 1985-1992,
- Commodore-Amiga Inc.
-
- Wouter van Oortmerssen is free to do what he likes with all this. Everyone
- else must adhere to the usual Freeware conditions. In particular, you are
- free to use these modules to create your programs (whether they are freeware
- or commercial), but if you wish to distribute any part of this archive you
- must include it all, unmodified, and with this "readme" file.
-